package com.woniuxy.service;

import com.woniuxy.entity.dto.operations.ClientDetailDTO;
import com.woniuxy.entity.dto.operations.VehicleDisplayDTO;
import com.woniuxy.util.PageParam;
import com.woniuxy.util.ResponseData;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @BelongsProject: charging-management-platform
 * @BelongsPackage: com.woniuxy.service
 * @Author: Quan
 * @Date: 2025/4/1 10:57
 */
public interface VehicleService {
	/**
	 * @Description: 根据条件查询，或者查询全部
	 * @Param: [vehicleDisplayDTO]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/1
	 */
	ResponseData<?> queryAll( PageParam<VehicleDisplayDTO> pageParam);

	/**
	 * @Description: 接收前端的图片，将其存放在minio中
	 * @Param: [file]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/1
	 */
	ResponseData<?> uploadImg(MultipartFile file) throws Exception;

	/**
	 * @Description: 添加车辆信息
	 * @Param: [vehicleDisplayDTO]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/1
	 */
	ResponseData<?> addVehicle(VehicleDisplayDTO vehicleDisplayDTO);

	/**
	 * @Description: 通过车辆id返回给前端车辆详情与图片
	 * @Param: [id]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/1
	 */
	ResponseData<?> queryById(Long id);

	/**
	 * @Description: 更新vehicle中的数据
 	 * @Param: [vehicleDisplayDTO]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/1
	 */
	ResponseData<?> update(VehicleDisplayDTO vehicleDisplayDTO);

	/**
	 * @Description: 当前端点击禁用或者启用按钮时，对数据库中的内容进行更新
	 * @Param: [vehicleDisplayDTO]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/2
	 */
	ResponseData<?> updateVehicleCondition(VehicleDisplayDTO vehicleDisplayDTO);

	/**
	 * @Description: 通过id对数据库中对应的字段进行逻辑删
	 * @Param: [id]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/2
	 */
	ResponseData<?> deleteById(Long id);

	/**
	 * @Description: 批量删除车辆
	 * @Param: [vehicleDisplayDTOList]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/2
	 */
	ResponseData<?> batchDelete(List<VehicleDisplayDTO> vehicleDisplayDTOList);


}
